perm filename PUPTST.BPL[11,HE] blob
sn#657580 filedate 1982-04-29 generic text, type T, neo UTF8
// PUPTST.BPL -- ROUTINE TO TEST EFTP --
// Copyright Xerox Corporation 1979
GET "EFTP.HDR"
GET "DLIB.HDR"
//
LET START() BE
//
[
LET ZONE = NIL
LET REGION = NIL
LET CTX = NIL
LET CTXQ = NIL
LET STKSIZE = 100
LET ZONESIZE = #14000
ZONE := GETFIXED(ZONESIZE)
INITIALIZEZONE(ZONE,ZONESIZE,0)
CTXQ := ALLOCATE(ZONE,2)
CTXQ!0 := 0
INITPUPLEVEL1(ZONE,CTXQ,10,0)
INITEFTPPACKAGE()
REGION := ALLOCATE(ZONE,STKSIZE)
CTX := INITIALIZECONTEXT(REGION,STKSIZE,FWDPUP,2)
ENQUEUE(CTXQ,CTX)
CTX!3 := -1
CTX!4 := ZONE
CALLCONTEXTLIST(CTXQ!0) REPEATUNTIL CTX!3 EQ 0
INITETHERIO()
]
//
AND FWDPUP(CTX) BE
//
[
LET BYTECNT = NIL
LET CODE = NIL
LET SSOC = VEC LENEFTPSOC
LET RSOC = VEC LENEFTPSOC
LET ALTOPORT = VEC LENPORT
LET PDPPORT = VEC LENPORT
LET ADDR = ALLOCATE(CTX!4,266)
ALTOPORT!0, ALTOPORT!1, ALTOPORT!2 := #34∀,0,#20
PDPPORT!0, PDPPORT!1, PDPPORT!2 := 0,0,#20
OPENAFTPSOC(SSOC,0,ALTOPORT)
OPENAFTPSOC(RSOC,PDPPORT,0)
[
BYTECNT := RECEIVEEFTPBLOCK(RSOC,ADDR,-1)
IF BYTECNT LS 0 BREAK
TEST BYTECNT GR 0
THEN
[
CODE := SENDEFTPBLOCK(SSOC,ADDR,BYTECNT,-1)
IF CODE LE 0 BREAK
]
OR
[
CODE := SENDEFTPEND(SSOC,-1)
BREAK
]
] RE@EAT
CLOSEEFTPSOC(SSOC)
CLOSEEFTPSOC(RSOC)
CTX!3 :8
@`4∃¬→∨
⊗PRAI!βP~∀~∃t~∀